package com.xygz.orm.internal.query;

import com.xiyuan.smartutils.genid.Identity;
import com.xygz.orm.SQLWrapper;
import com.xygz.orm.config.ORMConfig;
import com.xygz.orm.enums.DbType;
import com.xygz.orm.exception.ORMException;

import java.sql.SQLException;

/**
 * SQL where 查询条件
 *
 * @author xiyuan-lgz 2023-12-02 @version v1.0.0 新建与整理
 */
@SuppressWarnings("all")
public interface WhereItem extends Identity {
    /**
     * 是否为 or 条件
     *
     * @return true | false
     */
    public boolean isOr();
    
    
    /**
     * 生成SQL 信息
     *
     * @param tableName  表名
     * @param tableAlias 别名
     * @param out        SQL 结果器
     * @param dbType     数据库类型
     * @param cfg        数据库配置
     * @throws SQLException 异常信息
     * @throws ORMException 异常信息
     */
    public void toSQL(String tbName, SQLWrapper out, DbType dbType, ORMConfig cfg) throws ORMException;
}
